198 lines
43 KiB
Plaintext
198 lines
43 KiB
Plaintext
import { M as MetaTagsArrayable } from "/_nuxt/node_modules/unhead/dist/shared/unhead.yem5I2v_.mjs?v=e4f18c29";
|
|
|
|
const NAMESPACES = {
|
|
META: /* @__PURE__ */ new Set(["twitter"]),
|
|
OG: /* @__PURE__ */ new Set(["og", "book", "article", "profile", "fb"]),
|
|
MEDIA: /* @__PURE__ */ new Set(["ogImage", "ogVideo", "ogAudio", "twitterImage"]),
|
|
HTTP_EQUIV: /* @__PURE__ */ new Set(["contentType", "defaultStyle", "xUaCompatible"])
|
|
};
|
|
const META_ALIASES = {
|
|
articleExpirationTime: "article:expiration_time",
|
|
articleModifiedTime: "article:modified_time",
|
|
articlePublishedTime: "article:published_time",
|
|
bookReleaseDate: "book:release_date",
|
|
fbAppId: "fb:app_id",
|
|
ogAudioSecureUrl: "og:audio:secure_url",
|
|
ogAudioUrl: "og:audio",
|
|
ogImageSecureUrl: "og:image:secure_url",
|
|
ogImageUrl: "og:image",
|
|
ogSiteName: "og:site_name",
|
|
ogVideoSecureUrl: "og:video:secure_url",
|
|
ogVideoUrl: "og:video",
|
|
profileFirstName: "profile:first_name",
|
|
profileLastName: "profile:last_name",
|
|
profileUsername: "profile:username",
|
|
msapplicationConfig: "msapplication-Config",
|
|
msapplicationTileColor: "msapplication-TileColor",
|
|
msapplicationTileImage: "msapplication-TileImage"
|
|
};
|
|
const MetaPackingSchema = {
|
|
appleItunesApp: {
|
|
unpack: {
|
|
entrySeparator: ", ",
|
|
// @ts-expect-error untyped
|
|
resolve: ({ key, value }) => `${fixKeyCase(key)}=${value}`
|
|
}
|
|
},
|
|
refresh: {
|
|
metaKey: "http-equiv",
|
|
unpack: {
|
|
entrySeparator: ";",
|
|
// @ts-expect-error untyped
|
|
resolve: ({ key, value }) => key === "seconds" ? `${value}` : void 0
|
|
}
|
|
},
|
|
robots: {
|
|
unpack: {
|
|
entrySeparator: ", ",
|
|
// @ts-expect-error untyped
|
|
resolve: ({ key, value }) => typeof value === "boolean" ? fixKeyCase(key) : `${fixKeyCase(key)}:${value}`
|
|
}
|
|
},
|
|
contentSecurityPolicy: {
|
|
metaKey: "http-equiv",
|
|
unpack: {
|
|
entrySeparator: "; ",
|
|
// @ts-expect-error untyped
|
|
resolve: ({ key, value }) => `${fixKeyCase(key)} ${value}`
|
|
}
|
|
},
|
|
charset: {}
|
|
};
|
|
function fixKeyCase(key) {
|
|
const updated = key.replace(/([A-Z])/g, "-$1").toLowerCase();
|
|
const prefixIndex = updated.indexOf("-");
|
|
return prefixIndex === -1 ? updated : NAMESPACES.META.has(updated.slice(0, prefixIndex)) || NAMESPACES.OG.has(updated.slice(0, prefixIndex)) ? key.replace(/([A-Z])/g, ":$1").toLowerCase() : updated;
|
|
}
|
|
function sanitizeObject(input) {
|
|
return Object.fromEntries(Object.entries(input).filter(([k, v]) => String(v) !== "false" && k));
|
|
}
|
|
function transformObject(obj) {
|
|
return Array.isArray(obj) ? obj.map(transformObject) : !obj || typeof obj !== "object" ? obj : Object.fromEntries(Object.entries(obj).map(([k, v]) => [fixKeyCase(k), transformObject(v)]));
|
|
}
|
|
function unpackToString(value, options = {}) {
|
|
const { entrySeparator = "", keyValueSeparator = "", wrapValue, resolve } = options;
|
|
return Object.entries(value).map(([key, val]) => {
|
|
if (resolve) {
|
|
const resolved = resolve({ key, value: val });
|
|
if (resolved !== void 0)
|
|
return resolved;
|
|
}
|
|
const processedVal = typeof val === "object" ? unpackToString(val, options) : typeof val === "number" ? val.toString() : typeof val === "string" && wrapValue ? `${wrapValue}${val.replace(new RegExp(wrapValue, "g"), `\\${wrapValue}`)}${wrapValue}` : val;
|
|
return `${key}${keyValueSeparator}${processedVal}`;
|
|
}).join(entrySeparator);
|
|
}
|
|
function handleObjectEntry(key, value) {
|
|
const sanitizedValue = sanitizeObject(value);
|
|
const fixedKey = fixKeyCase(key);
|
|
const attr = resolveMetaKeyType(fixedKey);
|
|
if (!MetaTagsArrayable.has(fixedKey)) {
|
|
return [{ [attr]: fixedKey, ...sanitizedValue }];
|
|
}
|
|
const input = Object.fromEntries(
|
|
Object.entries(sanitizedValue).map(([k, v]) => [`${key}${k === "url" ? "" : `${k[0].toUpperCase()}${k.slice(1)}`}`, v])
|
|
);
|
|
return unpackMeta(input || {}).sort((a, b) => (a[attr]?.length || 0) - (b[attr]?.length || 0));
|
|
}
|
|
function resolveMetaKeyType(key) {
|
|
if (MetaPackingSchema[key]?.metaKey === "http-equiv" || NAMESPACES.HTTP_EQUIV.has(key)) {
|
|
return "http-equiv";
|
|
}
|
|
const fixed = fixKeyCase(key);
|
|
const colonIndex = fixed.indexOf(":");
|
|
return colonIndex === -1 ? "name" : NAMESPACES.OG.has(fixed.slice(0, colonIndex)) ? "property" : "name";
|
|
}
|
|
function resolveMetaKeyValue(key) {
|
|
return META_ALIASES[key] || fixKeyCase(key);
|
|
}
|
|
function resolvePackedMetaObjectValue(value, key) {
|
|
if (key === "refresh")
|
|
return `${value.seconds};url=${value.url}`;
|
|
return unpackToString(transformObject(value), {
|
|
keyValueSeparator: "=",
|
|
entrySeparator: ", ",
|
|
resolve: ({ value: value2, key: key2 }) => value2 === null ? "" : typeof value2 === "boolean" ? key2 : void 0,
|
|
// @ts-expect-error untyped
|
|
...MetaPackingSchema[key]?.unpack
|
|
});
|
|
}
|
|
function unpackMeta(input) {
|
|
const extras = [];
|
|
const primitives = {};
|
|
for (const [key, value] of Object.entries(input)) {
|
|
if (Array.isArray(value)) {
|
|
if (key === "themeColor") {
|
|
value.forEach((v) => {
|
|
if (typeof v === "object" && v !== null) {
|
|
extras.push({ name: "theme-color", ...v });
|
|
}
|
|
});
|
|
continue;
|
|
}
|
|
for (const v of value) {
|
|
if (typeof v === "object" && v !== null) {
|
|
const urlProps = [];
|
|
const otherProps = [];
|
|
for (const [propKey, propValue] of Object.entries(v)) {
|
|
const metaKey = `${key}${propKey === "url" ? "" : `:${propKey}`}`;
|
|
const meta2 = unpackMeta({ [metaKey]: propValue });
|
|
(propKey === "url" ? urlProps : otherProps).push(...meta2);
|
|
}
|
|
extras.push(...urlProps, ...otherProps);
|
|
} else {
|
|
extras.push(...typeof v === "string" ? unpackMeta({ [key]: v }) : handleObjectEntry(key, v));
|
|
}
|
|
}
|
|
continue;
|
|
}
|
|
if (typeof value === "object" && value) {
|
|
if (NAMESPACES.MEDIA.has(key)) {
|
|
const prefix = key.startsWith("twitter") ? "twitter" : "og";
|
|
const type = key.replace(/^(og|twitter)/, "").toLowerCase();
|
|
const metaKey = prefix === "twitter" ? "name" : "property";
|
|
if (value.url) {
|
|
extras.push({
|
|
[metaKey]: `${prefix}:${type}`,
|
|
content: value.url
|
|
});
|
|
}
|
|
if (value.secureUrl) {
|
|
extras.push({
|
|
[metaKey]: `${prefix}:${type}:secure_url`,
|
|
content: value.secureUrl
|
|
});
|
|
}
|
|
for (const [propKey, propValue] of Object.entries(value)) {
|
|
if (propKey !== "url" && propKey !== "secureUrl") {
|
|
extras.push({
|
|
[metaKey]: `${prefix}:${type}:${propKey}`,
|
|
// @ts-expect-error untyped
|
|
content: propValue
|
|
});
|
|
}
|
|
}
|
|
} else if (MetaTagsArrayable.has(fixKeyCase(key))) {
|
|
extras.push(...handleObjectEntry(key, value));
|
|
} else {
|
|
primitives[key] = sanitizeObject(value);
|
|
}
|
|
} else {
|
|
primitives[key] = value;
|
|
}
|
|
}
|
|
const meta = Object.entries(primitives).map(([key, value]) => {
|
|
if (key === "charset")
|
|
return { charset: value === null ? "_null" : value };
|
|
const metaKey = resolveMetaKeyType(key);
|
|
const keyValue = resolveMetaKeyValue(key);
|
|
const processedValue = value === null ? "_null" : typeof value === "object" ? resolvePackedMetaObjectValue(value, key) : typeof value === "number" ? value.toString() : value;
|
|
return metaKey === "http-equiv" ? { "http-equiv": keyValue, "content": processedValue } : { [metaKey]: keyValue, content: processedValue };
|
|
});
|
|
return [...extras, ...meta].map(
|
|
(m) => !("content" in m) ? m : m.content === "_null" ? { ...m, content: null } : m
|
|
);
|
|
}
|
|
|
|
export { resolveMetaKeyValue as a, resolvePackedMetaObjectValue as b, resolveMetaKeyType as r, unpackMeta as u };
|
|
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaGVhZC5EUWMxNnBISS5tanM/dj1lNGYxOGMyOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNIGFzIE1ldGFUYWdzQXJyYXlhYmxlIH0gZnJvbSBcIi9fbnV4dC9ub2RlX21vZHVsZXMvdW5oZWFkL2Rpc3Qvc2hhcmVkL3VuaGVhZC55ZW01STJ2Xy5tanM/dj1lNGYxOGMyOVwiO1xuXG5jb25zdCBOQU1FU1BBQ0VTID0ge1xuICBNRVRBOiAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbXCJ0d2l0dGVyXCJdKSxcbiAgT0c6IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFtcIm9nXCIsIFwiYm9va1wiLCBcImFydGljbGVcIiwgXCJwcm9maWxlXCIsIFwiZmJcIl0pLFxuICBNRURJQTogLyogQF9fUFVSRV9fICovIG5ldyBTZXQoW1wib2dJbWFnZVwiLCBcIm9nVmlkZW9cIiwgXCJvZ0F1ZGlvXCIsIFwidHdpdHRlckltYWdlXCJdKSxcbiAgSFRUUF9FUVVJVjogLyogQF9fUFVSRV9fICovIG5ldyBTZXQoW1wiY29udGVudFR5cGVcIiwgXCJkZWZhdWx0U3R5bGVcIiwgXCJ4VWFDb21wYXRpYmxlXCJdKVxufTtcbmNvbnN0IE1FVEFfQUxJQVNFUyA9IHtcbiAgYXJ0aWNsZUV4cGlyYXRpb25UaW1lOiBcImFydGljbGU6ZXhwaXJhdGlvbl90aW1lXCIsXG4gIGFydGljbGVNb2RpZmllZFRpbWU6IFwiYXJ0aWNsZTptb2RpZmllZF90aW1lXCIsXG4gIGFydGljbGVQdWJsaXNoZWRUaW1lOiBcImFydGljbGU6cHVibGlzaGVkX3RpbWVcIixcbiAgYm9va1JlbGVhc2VEYXRlOiBcImJvb2s6cmVsZWFzZV9kYXRlXCIsXG4gIGZiQXBwSWQ6IFwiZmI6YXBwX2lkXCIsXG4gIG9nQXVkaW9TZWN1cmVVcmw6IFwib2c6YXVkaW86c2VjdXJlX3VybFwiLFxuICBvZ0F1ZGlvVXJsOiBcIm9nOmF1ZGlvXCIsXG4gIG9nSW1hZ2VTZWN1cmVVcmw6IFwib2c6aW1hZ2U6c2VjdXJlX3VybFwiLFxuICBvZ0ltYWdlVXJsOiBcIm9nOmltYWdlXCIsXG4gIG9nU2l0ZU5hbWU6IFwib2c6c2l0ZV9uYW1lXCIsXG4gIG9nVmlkZW9TZWN1cmVVcmw6IFwib2c6dmlkZW86c2VjdXJlX3VybFwiLFxuICBvZ1ZpZGVvVXJsOiBcIm9nOnZpZGVvXCIsXG4gIHByb2ZpbGVGaXJzdE5hbWU6IFwicHJvZmlsZTpmaXJzdF9uYW1lXCIsXG4gIHByb2ZpbGVMYXN0TmFtZTogXCJwcm9maWxlOmxhc3RfbmFtZVwiLFxuICBwcm9maWxlVXNlcm5hbWU6IFwicHJvZmlsZTp1c2VybmFtZVwiLFxuICBtc2FwcGxpY2F0aW9uQ29uZmlnOiBcIm1zYXBwbGljYXRpb24tQ29uZmlnXCIsXG4gIG1zYXBwbGljYXRpb25UaWxlQ29sb3I6IFwibXNhcHBsaWNhdGlvbi1UaWxlQ29sb3JcIixcbiAgbXNhcHBsaWNhdGlvblRpbGVJbWFnZTogXCJtc2FwcGxpY2F0aW9uLVRpbGVJbWFnZVwiXG59O1xuY29uc3QgTWV0YVBhY2tpbmdTY2hlbWEgPSB7XG4gIGFwcGxlSXR1bmVzQXBwOiB7XG4gICAgdW5wYWNrOiB7XG4gICAgICBlbnRyeVNlcGFyYXRvcjogXCIsIFwiLFxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciB1bnR5cGVkXG4gICAgICByZXNvbHZlOiAoeyBrZXksIHZhbHVlIH0pID0+IGAke2ZpeEtleUNhc2Uoa2V5KX09JHt2YWx1ZX1gXG4gICAgfVxuICB9LFxuICByZWZyZXNoOiB7XG4gICAgbWV0YUtleTogXCJodHRwLWVxdWl2XCIsXG4gICAgdW5wYWNrOiB7XG4gICAgICBlbnRyeVNlcGFyYXRvcjogXCI7XCIsXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHVudHlwZWRcbiAgICAgIHJlc29sdmU6ICh7IGtleSwgdmFsdWUgfSkgPT4ga2V5ID09PSBcInNlY29uZHNcIiA/IGAke3ZhbHVlfWAgOiB2b2lkIDBcbiAgICB9XG4gIH0sXG4gIHJvYm90czoge1xuICAgIHVucGFjazoge1xuICAgICAgZW50cnlTZXBhcmF0b3I6IFwiLCBcIixcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgdW50eXBlZFxuICAgICAgcmVzb2x2ZTogKHsga2V5LCB2YWx1ZSB9KSA9PiB0eXBlb2YgdmFsdWUgPT09IFwiYm9vbGVhblwiID8gZml4S2V5Q2FzZShrZXkpIDogYCR7Zml4S2V5Q2FzZShrZXkpfToke3ZhbHVlfWBcbiAgICB9XG4gIH0sXG4gIGNvbnRlbnRTZWN1cml0eVBvbGljeToge1xuICAgIG1ldGFLZXk6IFwiaHR0cC1lcXVpdlwiLFxuICAgIHVucGFjazoge1xuICAgICAgZW50cnlTZXBhcmF0b3I6IFwiOyBcIixcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgdW50eXBlZFxuICAgICAgcmVzb2x2ZTogKHsga2V5LCB2YWx1ZSB9KSA9PiBgJHtmaXhLZXlDYXNlKGtleSl9ICR7dmFsdWV9YFxuICAgIH1cbiAgfSxcbiAgY2hhcnNldDoge31cbn07XG5mdW5jdGlvbiBmaXhLZXlDYXNlKGtleSkge1xuICBjb25zdCB1cGRhdGVkID0ga2V5LnJlcGxhY2UoLyhbQS1aXSkvZywgXCItJDFcIikudG9Mb3dlckNhc2UoKTtcbiAgY29uc3QgcHJlZml4SW5kZXggPSB1cGRhdGVkLmluZGV4T2YoXCItXCIpO1xuICByZXR1cm4gcHJlZml4SW5kZXggPT09IC0xID8gdXBkYXRlZCA6IE5BTUVTUEFDRVMuTUVUQS5oYXModXBkYXRlZC5zbGljZSgwLCBwcmVmaXhJbmRleCkpIHx8IE5BTUVTUEFDRVMuT0cuaGFzKHVwZGF0ZWQuc2xpY2UoMCwgcHJlZml4SW5kZXgpKSA/IGtleS5yZXBsYWNlKC8oW0EtWl0pL2csIFwiOiQxXCIpLnRvTG93ZXJDYXNlKCkgOiB1cGRhdGVkO1xufVxuZnVuY3Rpb24gc2FuaXRpemVPYmplY3QoaW5wdXQpIHtcbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhpbnB1dCkuZmlsdGVyKChbaywgdl0pID0+IFN0cmluZyh2KSAhPT0gXCJmYWxzZVwiICYmIGspKTtcbn1cbmZ1bmN0aW9uIHRyYW5zZm9ybU9iamVjdChvYmopIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkob2JqKSA/IG9iai5tYXAodHJhbnNmb3JtT2JqZWN0KSA6ICFvYmogfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIiA/IG9iaiA6IE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhvYmopLm1hcCgoW2ssIHZdKSA9PiBbZml4S2V5Q2FzZShrKSwgdHJhbnNmb3JtT2JqZWN0KHYpXSkpO1xufVxuZnVuY3Rpb24gdW5wYWNrVG9TdHJpbmcodmFsdWUsIG9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB7IGVudHJ5U2VwYXJhdG9yID0gXCJcIiwga2V5VmFsdWVTZXBhcmF0b3IgPSBcIlwiLCB3cmFwVmFsdWUsIHJlc29sdmUgfSA9IG9wdGlvbnM7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyh2YWx1ZSkubWFwKChba2V5LCB2YWxdKSA9PiB7XG4gICAgaWYgKHJlc29sdmUpIHtcbiAgICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZSh7IGtleSwgdmFsdWU6IHZhbCB9KTtcbiAgICAgIGlmIChyZXNvbHZlZCAhPT0gdm9pZCAwKVxuICAgICAgICByZXR1cm4gcmVzb2x2ZWQ7XG4gICAgfVxuICAgIGNvbnN0IHByb2Nlc3NlZFZhbCA9IHR5cGVvZiB2YWwgPT09IFwib2JqZWN0XCIgPyB1bnBhY2tUb1N0cmluZyh2YWwsIG9wdGlvbnMpIDogdHlwZW9mIHZhbCA9PT0gXCJudW1iZXJcIiA/IHZhbC50b1N0cmluZygpIDogdHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIiAmJiB3cmFwVmFsdWUgPyBgJHt3cmFwVmFsdWV9JHt2YWwucmVwbGFjZShuZXcgUmVnRXhwKHdyYXBWYWx1ZSwgXCJnXCIpLCBgXFxcXCR7d3JhcFZhbHVlfWApfSR7d3JhcFZhbHVlfWAgOiB2YWw7XG4gICAgcmV0dXJuIGAke2tleX0ke2tleVZhbHVlU2VwYXJhdG9yfSR7cHJvY2Vzc2VkVmFsfWA7XG4gIH0pLmpvaW4oZW50cnlTZXBhcmF0b3IpO1xufVxuZnVuY3Rpb24gaGFuZGxlT2JqZWN0RW50cnkoa2V5LCB2YWx1ZSkge1xuICBjb25zdCBzYW5pdGl6ZWRWYWx1ZSA9IHNhbml0aXplT2JqZWN0KHZhbHVlKTtcbiAgY29uc3QgZml4ZWRLZXkgPSBmaXhLZXlDYXNlKGtleSk7XG4gIGNvbnN0IGF0dHIgPSByZXNvbHZlTWV0YUtleVR5cGUoZml4ZWRLZXkpO1xuICBpZiAoIU1ldGFUYWdzQXJyYXlhYmxlLmhhcyhmaXhlZEtleSkpIHtcbiAgICByZXR1cm4gW3sgW2F0dHJdOiBmaXhlZEtleSwgLi4uc2FuaXRpemVkVmFsdWUgfV07XG4gIH1cbiAgY29uc3QgaW5wdXQgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgT2JqZWN0LmVudHJpZXMoc2FuaXRpemVkVmFsdWUpLm1hcCgoW2ssIHZdKSA9PiBbYCR7a2V5fSR7ayA9PT0gXCJ1cmxcIiA/IFwiXCIgOiBgJHtrWzBdLnRvVXBwZXJDYXNlKCl9JHtrLnNsaWNlKDEpfWB9YCwgdl0pXG4gICk7XG4gIHJldHVybiB1bnBhY2tNZXRhKGlucHV0IHx8IHt9KS5zb3J0KChhLCBiKSA9PiAoYVthdHRyXT8ubGVuZ3RoIHx8IDApIC0gKGJbYXR0cl0/Lmxlbmd0aCB8fCAwKSk7XG59XG5mdW5jdGlvbiByZXNvbHZlTWV0YUtleVR5cGUoa2V5KSB7XG4gIGlmIChNZXRhUGFja2luZ1NjaGVtYVtrZXldPy5tZXRhS2V5ID09PSBcImh0dHAtZXF1aXZcIiB8fCBOQU1FU1BBQ0VTLkhUVFBfRVFVSVYuaGFzKGtleSkpIHtcbiAgICByZXR1cm4gXCJodHRwLWVxdWl2XCI7XG4gIH1cbiAgY29uc3QgZml4ZWQgPSBmaXhLZXlDYXNlKGtleSk7XG4gIGNvbnN0IGNvbG9uSW5kZXggPSBmaXhlZC5pbmRleE9mKFwiOlwiKTtcbiAgcmV0dXJuIGNvbG9uSW5kZXggPT09IC0xID8gXCJuYW1lXCIgOiBOQU1FU1BBQ0VTLk9HLmhhcyhmaXhlZC5zbGljZSgwLCBjb2xvbkluZGV4KSkgPyBcInByb3BlcnR5XCIgOiBcIm5hbWVcIjtcbn1cbmZ1bmN0aW9uIHJlc29sdmVNZXRhS2V5VmFsdWUoa2V5KSB7XG4gIHJldHVybiBNRVRBX0FMSUFTRVNba2V5XSB8fCBmaXhLZXlDYXNlKGtleSk7XG59XG5mdW5jdGlvbiByZXNvbHZlUGFja2VkTWV0YU9iamVjdFZhbHVlKHZhbHVlLCBrZXkpIHtcbiAgaWYgKGtleSA9PT0gXCJyZWZyZXNoXCIpXG4gICAgcmV0dXJuIGAke3ZhbHVlLnNlY29uZHN9O3VybD0ke3ZhbHVlLnVybH1gO1xuICByZXR1cm4gdW5wYWNrVG9TdHJpbmcodHJhbnNmb3JtT2JqZWN0KHZhbHVlKSwge1xuICAgIGtleVZhbHVlU2VwYXJhdG9yOiBcIj1cIixcbiAgICBlbnRyeVNlcGFyYXRvcjogXCIsIFwiLFxuICAgIHJlc29sdmU6ICh7IHZhbHVlOiB2YWx1ZTIsIGtleToga2V5MiB9KSA9PiB2YWx1ZTIgPT09IG51bGwgPyBcIlwiIDogdHlwZW9mIHZhbHVlMiA9PT0gXCJib29sZWFuXCIgPyBrZXkyIDogdm9pZCAwLFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgdW50eXBlZFxuICAgIC4uLk1ldGFQYWNraW5nU2NoZW1hW2tleV0/LnVucGFja1xuICB9KTtcbn1cbmZ1bmN0aW9uIHVucGFja01ldGEoaW5wdXQpIHtcbiAgY29uc3QgZXh0cmFzID0gW107XG4gIGNvbnN0IHByaW1pdGl2ZXMgPSB7fTtcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoaW5wdXQpKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBpZiAoa2V5ID09PSBcInRoZW1lQ29sb3JcIikge1xuICAgICAgICB2YWx1ZS5mb3JFYWNoKCh2KSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB2ID09PSBcIm9iamVjdFwiICYmIHYgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGV4dHJhcy5wdXNoKHsgbmFtZTogXCJ0aGVtZS1jb2xvclwiLCAuLi52IH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCB2IG9mIHZhbHVlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdiA9PT0gXCJvYmplY3RcIiAmJiB2ICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgdXJsUHJvcHMgPSBbXTtcbiAgICAgICAgICBjb25zdCBvdGhlclByb3BzID0gW107XG4gICAgICAgICAgZm9yIChjb25zdCBbcHJvcEtleSwgcHJvcFZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh2KSkge1xuICAgICAgICAgICAgY29uc3QgbWV0YUtleSA9IGAke2tleX0ke3Byb3BLZXkgPT09IFwidXJsXCIgPyBcIlwiIDogYDoke3Byb3BLZXl9YH1gO1xuICAgICAgICAgICAgY29uc3QgbWV0YTIgPSB1bnBhY2tNZXRhKHsgW21ldGFLZXldOiBwcm9wVmFsdWUgfSk7XG4gICAgICAgICAgICAocHJvcEtleSA9PT0gXCJ1cmxcIiA/IHVybFByb3BzIDogb3RoZXJQcm9wcykucHVzaCguLi5tZXRhMik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGV4dHJhcy5wdXNoKC4uLnVybFByb3BzLCAuLi5vdGhlclByb3BzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBleHRyYXMucHVzaCguLi50eXBlb2YgdiA9PT0gXCJzdHJpbmdcIiA/IHVucGFja01ldGEoeyBba2V5XTogdiB9KSA6IGhhbmRsZU9iamVjdEVudHJ5KGtleSwgdikpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZSkge1xuICAgICAgaWYgKE5BTUVTUEFDRVMuTUVESUEuaGFzKGtleSkpIHtcbiAgICAgICAgY29uc3QgcHJlZml4ID0ga2V5LnN0YXJ0c1dpdGgoXCJ0d2l0dGVyXCIpID8gXCJ0d2l0dGVyXCIgOiBcIm9nXCI7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBrZXkucmVwbGFjZSgvXihvZ3x0d2l0dGVyKS8sIFwiXCIpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IG1ldGFLZXkgPSBwcmVmaXggPT09IFwidHdpdHRlclwiID8gXCJuYW1lXCIgOiBcInByb3BlcnR5XCI7XG4gICAgICAgIGlmICh2YWx1ZS51cmwpIHtcbiAgICAgICAgICBleHRyYXMucHVzaCh7XG4gICAgICAgICAgICBbbWV0YUtleV06IGAke3ByZWZpeH06JHt0eXBlfWAsXG4gICAgICAgICAgICBjb250ZW50OiB2YWx1ZS51cmxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUuc2VjdXJlVXJsKSB7XG4gICAgICAgICAgZXh0cmFzLnB1c2goe1xuICAgICAgICAgICAgW21ldGFLZXldOiBgJHtwcmVmaXh9OiR7dHlwZX06c2VjdXJlX3VybGAsXG4gICAgICAgICAgICBjb250ZW50OiB2YWx1ZS5zZWN1cmVVcmxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IFtwcm9wS2V5LCBwcm9wVmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlKSkge1xuICAgICAgICAgIGlmIChwcm9wS2V5ICE9PSBcInVybFwiICYmIHByb3BLZXkgIT09IFwic2VjdXJlVXJsXCIpIHtcbiAgICAgICAgICAgIGV4dHJhcy5wdXNoKHtcbiAgICAgICAgICAgICAgW21ldGFLZXldOiBgJHtwcmVmaXh9OiR7dHlwZX06JHtwcm9wS2V5fWAsXG4gICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgdW50eXBlZFxuICAgICAgICAgICAgICBjb250ZW50OiBwcm9wVmFsdWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChNZXRhVGFnc0FycmF5YWJsZS5oYXMoZml4S2V5Q2FzZShrZXkpKSkge1xuICAgICAgICBleHRyYXMucHVzaCguLi5oYW5kbGVPYmplY3RFbnRyeShrZXksIHZhbHVlKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcmltaXRpdmVzW2tleV0gPSBzYW5pdGl6ZU9iamVjdCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHByaW1pdGl2ZXNba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICBjb25zdCBtZXRhID0gT2JqZWN0LmVudHJpZXMocHJpbWl0aXZlcykubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICBpZiAoa2V5ID09PSBcImNoYXJzZXRcIilcbiAgICAgIHJldHVybiB7IGNoYXJzZXQ6IHZhbHVlID09PSBudWxsID8gXCJfbnVsbFwiIDogdmFsdWUgfTtcbiAgICBjb25zdCBtZXRhS2V5ID0gcmVzb2x2ZU1ldGFLZXlUeXBlKGtleSk7XG4gICAgY29uc3Qga2V5VmFsdWUgPSByZXNvbHZlTWV0YUtleVZhbHVlKGtleSk7XG4gICAgY29uc3QgcHJvY2Vzc2VkVmFsdWUgPSB2YWx1ZSA9PT0gbnVsbCA/IFwiX251bGxcIiA6IHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiA/IHJlc29sdmVQYWNrZWRNZXRhT2JqZWN0VmFsdWUodmFsdWUsIGtleSkgOiB0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIgPyB2YWx1ZS50b1N0cmluZygpIDogdmFsdWU7XG4gICAgcmV0dXJuIG1ldGFLZXkgPT09IFwiaHR0cC1lcXVpdlwiID8geyBcImh0dHAtZXF1aXZcIjoga2V5VmFsdWUsIFwiY29udGVudFwiOiBwcm9jZXNzZWRWYWx1ZSB9IDogeyBbbWV0YUtleV06IGtleVZhbHVlLCBjb250ZW50OiBwcm9jZXNzZWRWYWx1ZSB9O1xuICB9KTtcbiAgcmV0dXJuIFsuLi5leHRyYXMsIC4uLm1ldGFdLm1hcChcbiAgICAobSkgPT4gIShcImNvbnRlbnRcIiBpbiBtKSA/IG0gOiBtLmNvbnRlbnQgPT09IFwiX251bGxcIiA/IHsgLi4ubSwgY29udGVudDogbnVsbCB9IDogbVxuICApO1xufVxuXG5leHBvcnQgeyByZXNvbHZlTWV0YUtleVZhbHVlIGFzIGEsIHJlc29sdmVQYWNrZWRNZXRhT2JqZWN0VmFsdWUgYXMgYiwgcmVzb2x2ZU1ldGFLZXlUeXBlIGFzIHIsIHVucGFja01ldGEgYXMgdSB9O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7O0FBRTlHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQ25CLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN6RSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMs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QU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQzlELENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTztBQUN2TTtBQUNBLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakc7QUFDQSxRQUFRLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0w7QUFDQSxRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3QyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTztBQUNyRixDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25ELENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDakIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ25ELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUTtBQUN2QixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRztBQUNoUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUN0RCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztBQUN6QjtBQUNBLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN2QyxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztBQUM5QyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztBQUNsQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDO0FBQzNDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQ3hDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0FBQ3BELENBQUMsQ0FBQztBQUNGLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVztBQUNsQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxSCxDQUFDLENBQUMsQ0FBQztBQUNILENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRztBQUNBLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNqQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzFGLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMs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RCxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM5QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDaEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ25ELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0RCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNWLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRO0FBQ2hCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDN0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3RSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBQzlELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ3RFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDVixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0FBQ2pELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ2YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNSLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUTtBQUNkLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDckMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNuRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDbkUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0FBQ2xFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDdkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ3RCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQzNCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1osQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDdEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUM7QUFDckQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQzNCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1osQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDbEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUM1RCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ3hCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN2RCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztBQUNsQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDdkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNWLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNSLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDckQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNiLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7QUFDL0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDWCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7QUFDN0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUNGLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0FBQ3pCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMxRCxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztBQUMzQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQztBQUM3QyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7QUFDakwsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQzlJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRztBQUNqQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckYsQ0FBQyxDQUFDLENBQUM7QUFDSDs7QUFFQSxNQUFNLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7In0= |